package com.clps.algorithm03.数据结构;

public class 数组 {
    public static void main(String[] args) {

    }

    //矩阵的转换
    //矩阵的转换就是m*n的行数转换为同一个n*m矩阵,此矩阵叫做员矩阵转矩阵,
    int[][] transMatrix(int[][] matrix) {
        int m = matrix.length, n = matrix[0].length;
        int[][] res = new int[n][m];
        //遍历矩阵中的所有元素
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                res[j][i] = matrix[i][j];//
                return res;
            }
        }
        return res;
    }
    //矩阵的加法
    //矩阵的加法和减法类似,常见的矩阵加法被定义为连个矩阵大小的矩阵,器内的各元素为其相应元素相加的值

    int[][] addMatrix(int[][] maxTrix1,int[][] matrix2){
        int m = maxTrix1.length,n = maxTrix1[0].length;
        int[][] res = new int[m][n];
        for (int i = 0; i <m ; i++) {
            for (int j = 0; j <n ; j++) {
                res[i][j] = maxTrix1[i][j] +matrix2[i][j];
                return res;
            }
        }
        return res;
    }


    //矩阵乘法
    //矩阵的乘法比加减要麻烦一些，通常是一个 m*r 的矩阵与一个 r*n 的矩阵相乘，得到的是一个 m*n 的矩阵，计算过程如

    int[][] mutMatrix(int[][] matrix1,int[][] matrix2){
        int m = matrix1.length,r=matrix1[0].length,n = matrix2.length;
        int[][] res = new int[m][n];
        for (int i = 0; i <m ; i++) {
            for (int j = 0; j <n ; j++) {
                for (int k = 0; k <r ; k++) {
                    res[i][j]+=matrix1[i][k] * matrix2[k][j];
                }
            }
        }
        return res;
    }
}

